package test;

import java.util.Arrays;
import java.util.Scanner;

/*
2、磁盘容量排序
 */
public class Intervier2 {
    public static void main(String[] args) {
        //输入
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        String[] strings = new String[n];
        for (int i = 0; i < n; i++) {
            strings[i] = sc.nextLine();
        }
        //统一转化为数字，排序完转化为对应字符
        int[] ints = new int[n];
        for (int i = 0; i < n; i++) {
            String temp = null;
            if (strings[i].charAt(strings[i].length() - 1) == 'M') {
                temp = strings[i].substring(0, strings[i].length() - 1);
                ints[i] = Integer.parseInt(temp);
            }
            if (strings[i].charAt(strings[i].length() - 1) == 'G') {
                temp = strings[i].substring(0, strings[i].length() - 1);
                ints[i] = Integer.parseInt(temp) * 1000;
            }
            if (strings[i].charAt(strings[i].length() - 1) == 'T') {
                temp = strings[i].substring(0, strings[i].length() - 1);
                ints[i] = Integer.parseInt(temp) * 1000000;
            }
        }
        //排序
        Arrays.sort(ints);
        //输出
        for (int i = 0; i < n; i++) {
            if (ints[i] < 1000)
                System.out.println(ints[i] + "M");
            else if (ints[i] < 1000000)
                System.out.println(ints[i] / 1000 + "G");
            else
                System.out.println(ints[i] / 1000000 + "T");
        }
        sc.close();
    }
}
/*

磁盘的容量单位常用的有有M，G，T这三个等级，它们之间的换算关系是1T = 1000G，1G =1000M，现在给定n块磁盘的容量，请对它们按从小到大的顺序进行排序，例如给定3块盘的容量，1T，20M，3G，
排序后的结果未20M，3G，1T

输入描述：
1、每个测试用例第一行包含一个整数n(2 <= n <= 1000)，表示磁盘的个数，接下的n行，每行一个字符串（长度大于2，小于10），表示磁盘的容量，格式为：mv
，其中m表示容量大小，v表示容量单位，例如20M，1T，30G
2、磁盘容量m表示十进制数范围为1到1000的正整数，容量单位v的范围只包含题目中提到的M，G，T三种，换算关系如题目描述
输出描述：
输出n行，表示n块磁盘容量排序后的结果

备注：
用例输入保证容量大小和容量单位合法，无包含前置0（例如001M）的非法输入

示例1：
输入
3
1T
20M
3G
输出
20M
3G
1T
 */